import { Module, Global, DynamicModule } from '@nestjs/common';

interface Options {
    url: string;
}

@Global()              // 设置为全局模块, 会将这个模块注册成全局的
@Module({
    // providers: [
    //     {
    //         provide: 'Config',
    //         useValue: {
    //             baseUrl: "/version1"
    //         }
    //     }
    // ], 
    // exports: [          // 全局模块也是要导出的，一些内容
    //     {
    //         provide: 'Config',
    //         useValue: {
    //             baseUrl: "/version1"
    //         }
    //     }
    // ]
})
export class ConfigModule {
    static forRoot(options: Options): DynamicModule {           // 动态模块，内容跟上面配置的一样
        return {
            module: ConfigModule,
            providers: [
                {
                    provide: 'Config',
                    useValue: {
                        baseUrl: "/version2" + options.url
                    }
                }
            ],
            exports: [
                {
                    provide: 'Config',
                    useValue: {
                        baseUrl: "/version2" + options.url
                    }
                }
            ]
        }
    }
}